LocalConnection.domain()

Доступность

Flash Player 6; функциональность изменилось, начиная с Flash Player 7.

Синтаксис

my_lc.domain() : String

Параметры

Нет.

Возвращает

Строка, отображающая домен, в котором находится данный SWF файл; для более подробной информации смотри раздел Описание.

Описание

Метод; возвращает строковое представление домена, в котором находится данный SWF файл.

В SWF файлах, опубликованных под Flash Player 6, возвращаемая строка указывает на над-домен текущего SWF файла. Например, если SWF файл расположен в домене www.macromedia.com, метод вернет "macromedia.com".

В роликах, опубликованных под Flash Player 7 или более поздних версий, возвращаемая строка указывает на домен, в котором находится SWF файл. Например, если SWF файл расположен в домене www.macromedia.com, метод вернет "www.macromedia.com".

Если текущий SWF файл является локальным на данном компьютере, метод вернет "localhost".

Наиболее часто этот метод используется для передачи домена объекта-отправителя в качестве параметра методу, который Вы собираетесь вызвать или же для передачи его методу LocalConnection.allowDomain для разрешение дляступа с данного домена. Если Вы используете взаимодействие объектов LocalConnection из одного домена, использовать этот метод смысла не имеет.

Пример

В следующем примере объект-получатель разрешает вызов своих методов только объектам в SWF файлах из того же домена или домена macromedia.com:

// Если если оба ролика опубликованы под Flash Player 6,
// используем над-домен
var my_lc:LocalConnection = new LocalConnection();
my_lc.allowDomain = function(sendingDomain):String{
  return (sendingDomain==this.domain() || sendingDomain=="macromedia.com");
}

// Если один из роликов SWF файл опубликован для Flash Player 7 или более поздних версий, 
// используем непосредственно домен. В этом случае, вызовы из SWF файла из домена 
// www.macromedia.com будут приняты, но из ролика из другого домена
// (например, livedocs.macromedia.com) не сработают.
var my_lc:LocalConnection = new LocalConnection();
my_lc.allowDomain = function(sendingDomain):String{
  return (sendingDomain==this.domain() || sendingDomain=="www.macromedia.com");
}

В следующем примере объект-отправитель в SWF файле в домене www.yourdomain.com вызывает метод у объекта-получателя в SWF файле из домена www.mydomain.com. SWF файл с объектом-отправителем передает домен, в котором он расположен, поэтому объект-получатель может вернуть значение определенному адресу. Также указывается, что объект-отправитель будет принимать вызовы обратно только от объектов в роликах из домена mydomain.com.

Подробнее последовательность действий описана ниже:

    // determine our domain and see если we need to truncate it
57    var channelDomain:String = lc.domain();
58    если (getVersion() >= 7 && this.getSWFVersion() >= 7)
59    {
       // split domain name into elements
60      var domainArray:Array = channelDomain.split(".");
    
      // если more than two elements are found,
      // chop off first element to create superdomain
61      если (domainArray.length > 2)
62       {
63         domainArray.shеслиt();
64         channelDomain = domainArray.join(".");
65       }
66    }

67    lc.connect("result");
68    lc.send("mydomain.com:sum", "aSum", channelDomain + ':' + "result",
"aResult", 123, 456);

См. также

LocalConnection.allowDomain